The secure sharing of personal information among groups of individuals has long been a problem confronted by software developers. The challenge has been to enable an individual to publish information such that only specific individuals can access specific parts of the information. To some extent client-server software has enabled limited solutions to this challenge. One example is Microsoft's OUTLOOK personal information manager (PIM) client software combined with Microsoft's EXCHANGE SERVER software. This combination has enabled millions of individuals to share their information within workgroups, most commonly in a corporate or workplace environment.
The needs of users, however, are not limited to the workgroup or company setting. Frequently, users wish to share collections of personal information with a broader audience outside their workplace or organization. Examples include the sharing of a task list, a calendar of events, or a group of contacts (i.e. an address book). If a user wishes to share a calendar (e.g., upcoming football practices) with an audience outside his or her organization, the user must rely on technologies other than classic client-server software, technologies such as the Internet to allow access by other users.
Some solutions have been created which partially solve this problem. For example, calendar programs exist which can upload (publish) and download (subscribe to) calendars from servers attached to a network such as the Internet. These programs may use an Internet publishing standard such as Web-based Distributed Authoring and Versioning (WebDAV) to control publishing a calendar. Such programs, however, may not provide the ability to secure and filter the information available to others via the Internet.
Existing calendar solutions publish calendars without desirable restrictions. An entire calendar must typically be published, and calendars are frequently protected using a simple password protection scheme. Although somewhat secure, having a single password for a calendar makes it difficult to select who can and can't view the calendar on a person-by-person basis. For example, if three users are provided access to a published calendar by sharing the password with each of them, and one of the three subsequently has his access revoked, the publisher of the calendar must change the password and alert only the two remaining users of the change. Also, the password could be passed to others allowing them access to the information. Having a single password also makes it difficult to track who is accessing a calendar, and which person may have leaked the password to others. The single password may also be sent via insecure email and be subject to the prying eyes of others.
Furthermore, when publishing events or task items, the entire collection is published. This can be cumbersome for both the publisher and the users of the collection. Even though a few months or weeks of information may be relevant, the entire collection must be published each time there is a change. As an example, for a particularly large calendar stretching over a period of years, this may unnecessarily lengthen the amount of time to upload or download the calendar. In addition, the large calendar may take up too much memory and/or disk space on a server. Moreover, publishers may wish to limit the time period of calendar events published so that tentative future events remain unpublished.
There is a need in the art for the ability to publish a calendar to a server, such that the information published can be filtered, the access granted can be restricted on a user-by-user basis, and the granularity of data viewable by a user can be controlled. For example, a user may want to only give free/busy information to one person, while allowing another person to see the text of each appointment.